پرش به مطلب اصلی

Agentic AI

اAgentic AI نسل جدیدی از سیستم‌های هوش مصنوعی است که از یک مدل صرفاً پاسخ‌دهنده فراتر می‌رود و توانایی اقدام مستقل پیدا می‌کند.
در این الگو، کاربر فقط هدف نهایی را مشخص می‌کند و خود Agent مجموعهٔ کارهای لازم برای رسیدن به آن هدف را طراحی، اجرا و مدیریت می‌کند.

چرا بهش می‌گیم “Agentic”؟

چون مدل:

  1. هدف را تفسیر می‌کند
  2. آن را به گام‌های قابل‌اجرا می‌شکند
  3. ابزارها و سرویس‌های موردنیاز (API، فایل، اینترنت، سیستم‌ها) را استفاده می‌کند
  4. در طول مسیر وضعیت را ارزیابی و اصلاح می‌کند
  5. بدون دخالت مداوم کاربر، کار را تا انتها می‌رساند

تفاوت با ChatGPT معمولی

در مدل‌های معمولی، خروجی پاسخ به یک پیام است.
در Agentic AI، خروجی یک فرایند است:
سری اقداماتی که خود مدل طراحی می‌کند.

خصوصیات کلیدی

  • Autonomy: مدل برای هر مرحله نیاز به دستور ندارد.
  • Planning: خودش برنامهٔ کاری می‌چیند.
  • Tool Use: می‌تواند به ابزارها متصل شود و اقدام واقعی انجام دهد.
  • Memory: وضعیت کار را در طول فرایند نگه‌داری می‌کند.
  • Self-Correction: خطاها را تشخیص داده و اصلاح می‌کند.

clarification asking

Agent وقتی autonomy داره، یعنی:

هدف رو تفسیر می‌کنه

ابزارها رو انتخاب می‌کنه

مسیر رو می‌سازه

و اگر اطلاعات کافی نبود، خودش درخواست اطلاعات بیشتر می‌کنه. مثلا:

  • User Goal →
    «جلسه فردا رو هماهنگ کن»

  • Agent Reasoning →
    «برای هماهنگی جلسه باید زمان مشخص بشه، ولی هیچ زمانی داده نشده.»

  • Agent Decides → Ask user
    «چه ساعتی برای جلسه مناسب است؟»

  • کاربر جواب می‌دهد

  • Agent ادامه می‌دهد
    ابزارها رو صدا می‌زند و کار را کامل می‌کند.

این تعامل بخشی از Agent Loop هست.


شکاندن تسک

1) LLM-based Reasoning

اولین مرحله اینه که خود مدل (LLM) از روی هدف شروع می‌کنه فکر کردن.

هدف:
«جلسه فردا رو هماهنگ کن»

مدل تو ذهن خودش یه reasoning شبیه این می‌سازه:

  • برای هماهنگی جلسه باید زمان داشته باشم

  • باید تقویم کاربر رو چک کنم

  • باید رویداد بسازم

  • شاید باید دعوت‌نامه بفرستم

این reasoning همون “task breakdown” اولیه‌س.


2) Plan Generation (Explicit Planning)

بعضی Agent runtime‌ها یک فاز جدا به نام Planning دارن.
مدل یه “لیست تسک” می‌سازه:

مثلاً:

1. Collect missing details (date, time, participants)
2. Check user's calendar availability
3. Create event
4. Notify participants

این ساخت لیست، نتیجهٔ reasoning مدل + یک prompt مخصوص planning هست.


3) Schema-based Decomposition

اگر Agent با ابزارها آشنا باشه
(یعنی tooling رو قبلاً تعریف کردی)،
مدل نگاه می‌کنه ببینه کدوم ابزارها مناسبن.

مثلاً اگر tooling اینا رو داشته باشی:

  • readCalendar

  • createEvent

  • sendEmail

مدل تصمیم می‌گیره:

«اها برای Step 2 باید از readCalendar استفاده کنم.»

پس breakdownش از ترکیب:

  • هدف

  • tool abilities

  • reasoning
    میاد.


4) Self-Reflection (Iterative Improvement)

خیلی از Agentها موقع اجرا دوباره برنامه‌ریزی می‌کنن.
چون autonomy یعنی:

  • اجرا

  • مشاهده

  • اصلاح برنامه

مثلاً:

  • تقویم را بررسی کرد → زمان مناسب پیدا نشد → Plan را تغییر بده → بپرسه از کاربر زمان جدید چیه

Task breakdown در اینست:

Initial Plan → Execute Step → Observe → Replan

یعنی decomposition دائماً dynamic است، نه یک‌بار.


5) Chain-of-Thought داخلی

به‌صورت فنی، LLM‌ها task decomposition را با یک زنجیره استدلال داخلی انجام می‌دهند:

  • تجزیه هدف

  • استخراج subgoals

  • تعیین ترتیب

  • اتصال‌ها

  • انتخاب ابزار

ولی این reasoning معمولاً به کاربر نمایش داده نمیشه (مگر در حالت debugging).


🎯 یک مثال واقعی و کامل

هدف:

«برای جمعه یه سفر یک‌روزه برام برنامه‌ریزی کن.»

Task Decomposition در ذهن Agent:

  1. Clarify missing info

    • مقصد؟
    • بودجه؟
    • وسیله سفر؟
  2. Collect constraints

    • هواشناسی
    • زمان حرکت
    • محدودیت زمانی کاربر
  3. Planning

    • مسیر → رستوران → دیدنی‌ها → برگشت
  4. Action mapping

    • getWeather
    • searchPlaces
    • calculateRoute
  5. Execute plan step-by-step

  6. اگر یک بخش ناقص بود → سؤال بپرس

  7. خروجی نهایی رو بسازه

این کل پروسه از طریق LLM reasoning + ساختار Agent loop اتفاق می‌افته.


🧩 از نظر معماری

Task decomposition در Agentic AI بر پایه این ۴ چیزه:

  1. User Goal
  2. Tooling شما
  3. Reasoning model (LLM)
  4. Feedback Loop (Observation → Replan)

بدون ابزار → بخشی از decomposition قابل اجرا نیست
بدون goal → decomposition غیرفنی میشه
بدون reasoning → فقط یک ربات ساده است

چطوری خروجی بررسی میشه؟

در اصطلاح بهش میگن evals یعنی خروجی یک LLM (یا Agent) توسط یک LLM دیگر “داوری” میشه.

  1. LLM اصلی (Primary LLM / Agent)

    • کار خودش رو انجام می‌ده: پاسخ می‌ده، تسک‌ها رو انجام می‌ده، یا Agent Loop رو اجرا می‌کنه.
  2. LLM داور (Judge LLM / Evaluator)

    • ورودی LLM اصلی + معیارها رو می‌گیره
    • بررسی می‌کنه:
      • پاسخ درست/ناقصه؟

      • ابزار درست استفاده شده؟

      • clarifying question پرسیده شده یا نه؟

      • output structure مطابق schema هست یا نه؟

    • امتیاز، Pass/Fail، یا feedback می‌ده

چرا LLM-on-LLM خوبه؟

  • اتوماتیک می‌کنه Evals → بدون اینکه انسان تک‌تک خروجی‌ها رو بررسی کنه
  • قابل گسترش → می‌تونی صدها یا هزاران prompt تست بسازی
  • انعطاف‌پذیر → LLM داور می‌تونه معیارهای منطقی، ظریف یا پیچیده رو بررسی کنه

📝 اRubric چیه؟

Rubric = یک چارچوب ارزیابی

  • برای داوری خروجی‌ها (مثل LLM یا Agent)
  • مشخص می‌کنه چه چیزهایی درست و چه چیزهایی اشتباه محسوب می‌شوند
  • معمولاً شامل معیارها (criteria) و سطح نمره یا دسته‌بندی (levels/grades) است

🔑 چرا Rubric مهمه؟

  • بدون Rubric، داوری سلیقه‌ای و غیرقابل تکرار می‌شود

  • با Rubric:

    • Evaluator (چه human، چه LLM داور) دقیقاً می‌داند چه چیزی را باید بررسی کند
    • می‌توان feedback اتوماتیک تولید کرد
    • می‌توان رفتار Agent را قابل اندازه‌گیری و مقایسه کرد

🧩 ساختار معمول یک Rubric

CriterionDescriptionLevels / Score
Accuracyآیا جواب درست است؟0–2 (Fail/Partial/Pass)
Completenessآیا همه جزئیات موجود هستند؟0–2
Tool Useآیا ابزار مناسب استفاده شده؟0–1 (No/Yes)
Clarificationآیا سوال تکمیلی پرسیده شده اگر اطلاعات کم بوده؟0–1
Plan Qualityآیا برنامه منطقی و قابل اجراست؟0–2
  • Levels می‌تواند عددی، categorical، یا descriptive باشد

البته همیشه خروجی با llm صرفا داوری نمیشه مثلا شاید با یک external feedback همراه باشه مثلا اگه یه فکت میگه با وب ریسرچ میشه بررسی کرد مثلا دمای بخار آب ۱۰۰ه

حالا ممکنه ما در llm judge متوجه بشیم که خروجی اشتباه بوده اینجا لاگ میندازیم که بعدا بتونیم prompt هامون رو اصلاح کنیم. این چرخه باعث self-correction و بهبود مستمر میشه.

فرض کن Agent یک فرآیند چندمرحله‌ای دارد برای Goal: «جلسه فردا را هماهنگ کن»:

Component-level evaluations

  1. Planner → تصمیم می‌گیرد چه گام‌هایی برداشته شود
  2. Tool Selector → تصمیم می‌گیرد کدام ابزار استفاده شود
  3. Clarification Module → تصمیم می‌گیرد چه سوالاتی از کاربر پرسیده شود
  4. Executor → ابزارها را فراخوانی می‌کند و نتیجه را دریافت می‌کند
  5. Formatter / Output Generator → خروجی را به شکل نهایی می‌سازد

Component-Level Evaluation

  • هر بخش جداگانه بررسی می‌شود:
    • Planner: آیا برنامه منطقی بود؟
    • Tool Selector: ابزار درست انتخاب شد؟
    • Clarification: سوال تکمیلی پرسیده شد؟
    • Executor: ابزار درست اجرا شد؟
    • Formatter: خروجی با schema مطابقت داشت؟

در نهایت می‌توانیم امتیاز یا feedback هر component را ببینیم و دقیقاً مشخص کنیم کجا مشکل وجود دارد.

Tools

مجموعهٔ قابلیت‌ها یا ابزارهایی که Agent می‌تواند استفاده کند تا کار واقعی انجام دهد.

  • Tools فقط قابلیت‌ها هستند، نه تصمیم‌گیرنده
  • Agent تصمیم می‌گیرد چه ابزاری استفاده شود
  • Agent بدون Tools نمی‌تواند اقدام واقعی انجام دهد

این tools ها میتونه خیلی چیزا باشه مثلا یه فانکشن که تایم برمیگردونه، تقویم بر میگردونه یا کوئری میزنه به دیتابیس

  • Agent: مغز تصمیم‌گیری
  • Tools: دست و پا برای انجام کارها
  • Feedback/Evals: داوری کیفیت انجام کار

MCP

// TODO